package string;

/**
 * Striung的演示
 */
public class StringDemo {
    public static void main(String[] args) {
        String s=new String("hello");//创建了两个对象
        String s1="hello";//复用常量池中的字面量对象
        System.out.println("s:"+s);
        System.out.println("s1:"+s1);
        System.out.println(s==s1);//false ==比较的是地址是否相同
        System.out.println(s.equals(s1));//true，equals()比较的是内容是否相同


        /*
        String s1 = "123abc";//堆中创建123abc字符量对象，并缓存到常量池中
        //编译器在编译时，若发现是两个字面量相连，则会直接连接好并将结果保存起来
        //如下语句会被编译为：String s2="123abc";
        String s2 = "123" + "abc";
        System.out.println(s1 == s2);//true
        String s3 = "123";
        //因为s3是一个变量，所以在编译期并不会直接编译好
        String s4 = s3 + "abc";
        System.out.println(s1==s4);//false
         */

    }
}
